GDK W32: Cache multiple keyboard layouts simultaneously
authorРуслан Ижбулатов <lrn1986@gmail.com>
Wed, 13 Jul 2016 11:41:35 +0000 (11:41 +0000)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Thu, 4 Aug 2016 16:37:18 +0000 (16:37 +0000)
commit52c7e07948f0d82ade7c730e99c53dea3e13ca67
tree4e740c861538814058dd46f11e41c5edb81f69fe
parent60f3c02080fe8d0ad1177d05e5e4e1ab399f26c1
GDK W32: Cache multiple keyboard layouts simultaneously

This changes the group/level semantic.
Previously W32 backend used "group 0/1" to denote "AltGr OFF/ON"
and "level 0/1" to denote "Shift is OFF/ON".
Now "group" means "keyboard layout" and there can be up to 255 groups,
while AltGr and Shift are combined into a single level enum that
takes values between 0 and 4.
Unlike X, W32 doesn't do effective group overriding, meaning that
it will never tell the caller that a different group was actually
used (even for universal keys, such as Enter), because key symbol
table is completely fabricated and there's no point in trying to
save a few of kilobytes of RAM by not duplicating universal key
records for all groups.

Also contains many whitespace changes (tab elimination, fixed
indentation) and cleanup (axed a few global variables, these are
now accessed via the default keymap).

https://bugzilla.gnome.org/show_bug.cgi?id=768722
gdk/gdkkeyuni.c
gdk/win32/gdkevents-win32.c
gdk/win32/gdkkeys-win32.c
gdk/win32/gdkmain-win32.c
gdk/win32/gdkprivate-win32.h